package com.shitou.springai1.admin.controller;

import com.shitou.springai1.admin.service.impl.CaptchaService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; // 修正：导入Spring的Model，而非logback的Model
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class LoginController {

    @Autowired
    private CaptchaService captchaService;

    // 跳转登录页（GET请求）
    @GetMapping("/login")
    public String loginPage(Model model) { // 修正：使用org.springframework.ui.Model
        // （可选）若需传递数据到前端，可通过model.addAttribute()
        return "login"; // 对应templates/login.html
    }

    // 生成验证码（GET请求，返回Base64图片）
    @GetMapping("/captcha")
    @ResponseBody
    public Map<String, String> getCaptcha(HttpSession session) {
        System.out.println("--- 开始生成验证码，Session ID：" + session.getId());

        // 调用CaptchaService生成验证码
        CaptchaService.CaptchaResult captchaResult = captchaService.generateCaptcha();
        String captchaCode = captchaResult.getCode();
        String imageBase64 = captchaResult.getImageBase64();

        // 将验证码存入Session（用于后续校验）
        session.setAttribute("captchaCode", captchaCode);
        System.out.println("--- 生成的验证码：" + captchaCode + "，已存入Session ---");

        // 返回Base64图片给前端
        Map<String, String> result = new HashMap<>();
        result.put("image", imageBase64);
        return result;
    }

    // （可选）403权限不足页面
    @GetMapping("/403")
    public String accessDeniedPage() {
        return "403"; // 需在templates目录下创建403.html
    }


}
